#ifndef VIEWMODIFYCLASSINFOWIN_H_
#define VIEWMODIFYCLASSINFOWIN_H_

#include "model/clases/ComponentClases.h"
#include "gtkmm/dialog.h"
#include "gtkmm/frame.h"
#include "gtkmm/entry.h"
#include "gtkmm/label.h"
#include "gtkmm/box.h"
#include "gtkmm/notebook.h"

#include "ClassInfoWindow/TabAtributos.h"
#include "ClassInfoWindow/TabClase.h"
#include "ClassInfoWindow/TabMetodos.h"
#include "model/clases/Clase.h"

/**
 * @brief esta ventana despliega las propiedades de la clase con la cual
 * fue creada (nombre y tipo).
 */

class ViewModifyClassInfoWin : public Gtk::Dialog {
public:
    ViewModifyClassInfoWin(Clase* );
    void addAttribute(std::string tipoDato, Visibilidad visibilidad, std::string nombre, bool estatico, std::string valor="");
	virtual ~ViewModifyClassInfoWin();
	virtual int run();

private:
	Gtk::Notebook m_Notebook;
	TabClase tabClase;
	TabAtributos tabAtributos;
	TabMetodos tabMetodos;

	Gtk::Frame m_mainFrame ;
	Gtk::Label m_componentNameLabel, m_typeLabel;
	Gtk::Entry m_componentNameEntry;
	Gtk::HBox m_typeHbox, m_componentNameHbox;
	Gtk::VBox m_mainbox;
	Gtk::RadioButton* m_radioButtons[5];
	Gtk::HBox m_radioButtonHbox[3];
	Gtk::RadioButton::Group m_radio;
	Clase* m_component;
};

#endif /* VIEWMODIFYCLASSINFOWIN_H_ */
